/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package q10.Arbori;

/**
 *
 * @author valicu
 */

import q10.Visitor.*;
/**
 * Clasa arbore functional
 *
 */
public class ArboreFunctional {
	/**
	 * variabila radacina va retine radacina arborelui ce reprezinta
	 * functia ce trebuie derivata
	 */
	private Nod radacina;
	/**
	 * constructorul clasei Arvore Functional
	 * @param radacina reprezinta radacina arborelui
	 */
	public ArboreFunctional(Nod radacina) {
		this.radacina = radacina;
	}

        public void acceptVisitor(Visitor v){
            v.visit(radacina);

        }
	/**
	 * functia calculeazaValoare va calcula valoarea functiei respective intr-un
	 * anumit punct
	 * @param x reprezinta valoarea punctului in care dorim sa calculam
	 * valoarea functiei
	 * @return o variabila de tipul double ce reprezinta valoarea fct in acel pct
	 */
	/*public double calculeazaValoare(double x){
		radacina.fDrept.x=x;
		radacina.fDrept.setX(x);
		radacina.fStang.x=x;
		radacina.fStang.setX(x);
		return radacina.calculeazaValoare();
	}*/
	/**
	 * returneaza un sir de caractere reprezentand functia
	 */
	/*public String toString(){
		return radacina.toString();
	}*/
	/**
	 * fuctia derivata() se foloseste pentru obtinerea derivatei
	 * @return returneaza un string reprezentand derivata functiei respective
	 */
	/*public String derivata(){
		return radacina.derivare();
	}*/
	/**
	 * se foloseste pentru calculul derivatei intr-un punct
	 * @param x variabila de tipul double reprezentand punctul in care vrem sa
	 * calculam valoarea derivatei
	 * @return returneaza o variabila double ce contine valoarea derivatei
	 *  in acel punct
	 */
	/*public double calculDerivata(double x){
		radacina.fDrept.x=x;
		radacina.fDrept.setX(x);
		radacina.fStang.x=x;
		radacina.fStang.setX(x);
		return radacina.calculDerivata();
	}*/

}
